﻿using System;
using System.Collections.Generic;
using System.ServiceModel;

namespace VideoCoreWCF {
    /// <summary>
    /// 
    /// </summary>
    [ServiceContract]
    public interface IVideoCore {
        /// <summary>
        /// Gets the camera list.
        /// </summary>
        /// <returns></returns>
        [OperationContract]
        IList<IPCamera> GetCameraList();
        /// <summary>
        /// Saves the IP camera.
        /// </summary>
        /// <param name="vIPCamera">The v IP camera.</param>
        /// <returns></returns>
        [OperationContract]
        bool SaveIPCamera(IPCamera vIPCamera);
        /// <summary>
        /// Deletes the IP camera.
        /// </summary>
        /// <param name="vIPCamera">The v IP camera.</param>
        /// <returns></returns>
        [OperationContract]
        bool DeleteIPCamera(IPCamera vIPCamera);
        /// <summary>
        /// Creates the camera stream.
        /// </summary>
        /// <param name="vCommand">The v command.</param>
        /// <returns></returns>
        [OperationContract]
        string CreateCameraStream(IPCameraCommand vCommand);

        [OperationContract]
        byte[] GetVideoStream(string fileName,long frame);
        
        [OperationContract]
        VideoFileInfo GetDateAt(string IP, DateTime dateTime);

        [OperationContract]
        VideoFileInfo GetNextFile(string IP,string currentFileName);

        [OperationContract]
        VideoFileInfo GetLastFile(string IP);

        [OperationContract]
        string Welcome();
    }
}
